Recent advances in virtualization and data-center technologies have made cloud-based applications a viable option for both personal and enterprise computing. Cloud-based applications such as Google® Docs and Microsoft SkyDrive® often have different demands for the underlying storage devices, which may vary with the type of documents involved, services rendered, or users served by these applications. Such demands are becoming common requirements for cloud services, which often need to satisfy storage service level agreements (SLAs) requested by customers. However, at present, data centers often store data on disks in a manner that only optimizes a few primitive parameters such as disk utilization and seek time, without consideration of SLA requirements.
For example, while a storage system can store log files on standard rotational media (e.g., conventional hard disks), some documents might need the extra redundancy of a redundant array of independent disk (RAID) storage, and other documents may need faster access from a solid-state drive (SSD). A database may require fast and random access to a file, whereas a backup application can afford to access data more slowly in a sequential manner. Thus, applications may have different requirements with respect to storage devices. However, current cloud services do not distinguish between the different access patterns of different types of applications. An administrator might manually configure storage of a certain quality level for an application. However, manual configuration is costly and cannot respond quickly to changing application SLA requirements.